package org.jeecg.modules.business.repertory.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 在途库存
 * @Author: jeecg-boot
 * @Date: 2023-07-31
 * @Version: V1.0
 */
@Data
@TableName("wms_in_transit_repertory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "wms_in_transit_repertory对象", description = "在途库存")
public class WmsInTransitRepertory implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    /**
     * 物料编码
     */
    @Excel(name = "物料编码", width = 15)
    @ApiModelProperty(value = "物料编码")
    private String materialCode;
    /**
     * 物料名称
     */
    @Excel(name = "物料名称", width = 15)
    @ApiModelProperty(value = "物料名称")
    private String materialName;
    /**
     * 批次号
     */
    @Excel(name = "批次号", width = 15)
    @ApiModelProperty(value = "批次号")
    private String batchCode;
    /**
     * 仓库外键
     */
    @Excel(name = "仓库外键", width = 15, dictTable = "wms_basic_warehouse", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "仓库外键")
    @Dict(dictTable = "wms_basic_warehouse", dicText = "name", dicCode = "id")
    private String wmsBasicWarehouseId;
    /**
     * 库区外键
     */
    @Excel(name = "库区外键", width = 15, dictTable = "wms_basic_warehouse_area", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "库区外键")
    @Dict(dictTable = "wms_basic_warehouse_area", dicText = "name", dicCode = "id")
    private String wmsBasicWarehouseAreaId;
    /**
     * 库位外键
     */
    @Excel(name = "库位外键", width = 15, dictTable = "wms_basic_warehouse_area_location", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "库位外键")
    @Dict(dictTable = "wms_basic_warehouse_area_location", dicText = "name", dicCode = "id")
    private String wmsBasicWarehouseAreaLocationId;
    /**
     * 库存量
     */
    @Excel(name = "库存量", width = 15)
    @ApiModelProperty(value = "库存量")
    private BigDecimal stockQuantity;
    /**
     * 可用量
     */
    @Excel(name = "可用量", width = 15)
    @ApiModelProperty(value = "可用量")
    private BigDecimal usableQuantity;
    /**
     * 锁定量
     */
    @Excel(name = "锁定量", width = 15)
    @ApiModelProperty(value = "锁定量")
    private BigDecimal lockQuantity;
    /**
     * 库存单位
     */
    @Excel(name = "库存单位", width = 15, dictTable = "wms_basic_unit", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "库存单位")
    @Dict(dictTable = "wms_basic_unit", dicText = "name", dicCode = "id")
    private String wmsBasicUnitId;
    /**
     * 钢卷号
     */
    @Excel(name = "钢卷号", width = 15)
    @ApiModelProperty(value = "钢卷号")
    private String steelCode;
    /**
     * 外径
     */
    @Excel(name = "外径", width = 15)
    @ApiModelProperty(value = "外径")
    private BigDecimal outsideDiameter;
    /**
     * 宽度
     */
    @Excel(name = "宽度", width = 15)
    @ApiModelProperty(value = "宽度")
    private BigDecimal width;
    /**
     * 长度
     */
    @Excel(name = "长度", width = 15)
    @ApiModelProperty(value = "长度")
    private BigDecimal length;
    /**
     * 厚度
     */
    @Excel(name = "厚度", width = 15)
    @ApiModelProperty(value = "厚度")
    private BigDecimal thickness;
    /**
     * 牌号
     */
    @Excel(name = "牌号", width = 15, dicCode = "wms_mark")
    @Dict(dicCode = "wms_mark")
    @ApiModelProperty(value = "牌号")
    private String shopSign;
    /**
     * 外观等级
     */
    @Excel(name = "外观等级", width = 15, dicCode = "wms_appearance_rating")
    @Dict(dicCode = "wms_appearance_rating")
    @ApiModelProperty(value = "外观等级")
    private String appearanceGrade;
    /**
     * 铁损
     */
    @Excel(name = "铁损", width = 15)
    @ApiModelProperty(value = "铁损")
    private BigDecimal ironLoss;
    /**
     * 实测片厚
     */
    @Excel(name = "实测片厚", width = 15)
    @ApiModelProperty(value = "实测片厚")
    private BigDecimal measuredThickness;
    /**
     * 实测铁损
     */
    @Excel(name = "实测铁损", width = 15)
    @ApiModelProperty(value = "实测铁损")
    private BigDecimal measuredIronLoss;
    /**
     * 硅钢等级
     */
    @Excel(name = "硅钢等级", width = 15)
    @ApiModelProperty(value = "硅钢等级")
    private String siliconGrade;
    /**
     * 刻痕等级
     */
    @Excel(name = "刻痕等级", width = 15)
    @ApiModelProperty(value = "刻痕等级")
    private String score;
    /**
     * 原始净重
     */
    @Excel(name = "原始净重", width = 15)
    @ApiModelProperty(value = "原始净重")
    private BigDecimal originalWeight;
    /**
     * 实称净重
     */
    @Excel(name = "实称净重", width = 15)
    @ApiModelProperty(value = "实称净重")
    private BigDecimal measuredWeight;
    /**
     * 包装物
     */
    @Excel(name = "包装物", width = 15)
    @ApiModelProperty(value = "包装物")
    private String wrappage;
    /**
     * 毛重
     */
    @Excel(name = "毛重", width = 15)
    @ApiModelProperty(value = "毛重")
    private BigDecimal grossWeight;
    /**
     * 入库日期
     */
    @Excel(name = "入库日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入库日期")
    private Date warehouseDate;
    /**
     * 库存量（辅单位）
     */
    @Excel(name = "库存量（辅单位）", width = 15)
    @ApiModelProperty(value = "库存量（辅单位）")
    private BigDecimal stockQuantitySub;
    /**
     * 可用量（辅单位）
     */
    @Excel(name = "可用量（辅单位）", width = 15)
    @ApiModelProperty(value = "可用量（辅单位）")
    private BigDecimal usableQuantitySub;
    /**
     * 锁定量（辅单位）
     */
    @Excel(name = "锁定量（辅单位）", width = 15)
    @ApiModelProperty(value = "锁定量（辅单位）")
    private BigDecimal lockQuantitySub;
    /**
     * 辅单位
     */
    @Excel(name = "辅单位", width = 15)
    @ApiModelProperty(value = "辅单位")
    private String unitSub;
    /**
     * 销售订单号
     */
    @Excel(name = "销售订单号", width = 15)
    @ApiModelProperty(value = "销售订单号")
    private String saleOrderCode;
    /**
     * 销售订单行号
     */
    @Excel(name = "销售订单行号", width = 15)
    @ApiModelProperty(value = "销售订单行号")
    private String saleOrderLineCode;
    /**
     * 生产工单号
     */
    @Excel(name = "生产工单号", width = 15)
    @ApiModelProperty(value = "生产工单号")
    private String productCode;
    /**
     * 生产工单行号
     */
    @Excel(name = "生产工单行号", width = 15)
    @ApiModelProperty(value = "生产工单行号")
    private String productLineCode;
    /**
     * 库存状态 正常: normal, 冻结: freeze
     */
    @Excel(name = "库存状态", width = 15, dicCode = "repertory_status")
    @ApiModelProperty(value = "库存状态")
    @Dict(dicCode = "repertory_status")
    private String status;
    /**
     * 备注
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 库存组织
     */
    @Excel(name = "库存组织", width = 15)
    @ApiModelProperty(value = "库存组织")
    private String stockOrg;
    /**
     * 货主类型
     */
    @Excel(name = "货主类型", width = 15, dicCode = "wms_owner_of_cargo")
    @ApiModelProperty(value = "货主类型")
    @Dict(dicCode = "wms_owner_of_cargo")
    private String ownerType;
    /**
     * 货主编码
     */
    @Excel(name = "货主编码", width = 15)
    @ApiModelProperty(value = "货主编码")
    private String ownerCode;
    /**
     * 货主名称
     */
    @Excel(name = "货主名称", width = 15)
    @ApiModelProperty(value = "货主名称")
    private String ownerName;
    /**
     * 多租户
     */
    @Excel(name = "多租户", width = 15)
    @ApiModelProperty(value = "多租户")
    private Integer tenantId;
    /**
     * 逻辑删除
     */
    @Excel(name = "逻辑删除", width = 15)
    @ApiModelProperty(value = "逻辑删除")
    @TableLogic
    private Integer delFlag;
    /**
     * 物料编码
     */
    @Excel(name = "物料编码", width = 15)
    @ApiModelProperty(value = "物料编码")
    private String materialId;
    /**
     * 库区标识
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "库区标识")
    private Boolean areaTag;
    /**
     * 规格型号
     */
    @ApiModelProperty(value = "规格型号")
    private String specification;
    /**
     * 解锁量
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "解库量")
    private BigDecimal unlockNumber;
    /**
     * 解锁量(辅单位)
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "解库量(辅单位)")
    private BigDecimal unlockNumberSub;

    @ApiModelProperty(value = "是否合卷")
    private String isMergeRoll;

    @ApiModelProperty(value = "投入批次号")
    private String inputBatchCode;

    @ApiModelProperty(value = "母卷批次号")
    private String motherBatchCode;

    @ApiModelProperty(value = "柱形")
    private String pillar;

    @ApiModelProperty(value = "理料方向")
    private String materialDirection;

    @ApiModelProperty(value = "台号")
    private String stationNum;

    @ApiModelProperty(value = "产品型号")
    private String productModel;

    @ApiModelProperty(value = "产品类型")
    private String productType;
    /**客户*/
    @Excel(name = "客户", width = 15, dictTable = "wms_basic_customer", dicText = "name", dicCode = "id")
    @Dict(dictTable = "wms_basic_customer", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "客户")
    private String wmsBasicSupplierId;

    /**
     * 位置
     */
    @ApiModelProperty(value = "位置")
    private String location;

    /**
     * 计划生产工单号
     */
    @ApiModelProperty(value = "计划生产工单号")
    private String planProductOrderNumber;

    /**
     * 最新入库时间
     */
    @ApiModelProperty(value = "最新入库时间")
    private Date newestInboundTime;

    /**
     * 库龄
     */
    @ApiModelProperty("库龄")
    private BigDecimal stockAge;

    /**
     * 载具
     */
    @ApiModelProperty("载具")
    private String vehicle;

    /**
     * 载具编号
     */
    @ApiModelProperty("载具编号")
    private String vehicleCode;

    /**供应商*/
    @ApiModelProperty(value = "供应商")
    private String supplier;


    /**库存id*/
    @ApiModelProperty(value = "库存id")
    private String repertoryId;

    /**调拨任务id*/
    @ApiModelProperty(value = "调拨任务id")
    private String deliveryTaskId;
}
